package edu.hawaii.jmotif.sequitur.logic;

import java.util.ArrayList;

/**
 * 
 * Data container for SAX rules
 * 
 * @author Manfred Lerner
 *
 */
public class SAXRuleRecord {
	int ruleIndex;
	int ruleFrequency;
	
	//added by Rasaq 
	double ruleIntervalsSD;
	double ruleAveragePeriod;
	double ruleAverageMotifLength;

	String ruleName;
	String ruleString;
	String expandedRuleString;
	
	ArrayList<Integer> arrOffsets = new ArrayList<Integer>();
	
	
	/**
	 * @return index of the rule
	 */
	public int getRuleIndex() {
		return ruleIndex;
	}
	
	/**
	 * @param ruleIndex index of the rule
	 */
	public void setRuleIndex(int ruleIndex) {
		this.ruleIndex = ruleIndex;
	}
	
	
	/**
	 * @return frequency of the rule
	 */
	public int getRuleFrequency() {
		return ruleFrequency;
	}
	
	
	/**
	 * @param ruleFrequency frequency of the rule
	 */
	public void setRuleFrequency(int ruleFrequency) {
		this.ruleFrequency = ruleFrequency;
	}
	
	
	/**
	 * @return name of the rule, something like R1 or R30 etc.
	 */
	public String getRuleName() {
		return ruleName;
	}
	
	
	/**
	 * @param ruleName set the name of the rule, something like R1 or R30 etc.
	 */
	public void setRuleName(String ruleName) {
		this.ruleName = ruleName;
	}
	
	/**
	 * @return textual representation of the rule
	 */
	public String getRuleString() {
		return ruleString;
	}
	
	
	/**
	 * @param ruleString textual representation of the rule
	 */
	public void setRuleString(String ruleString) {
		this.ruleString = ruleString;
	}
	
	
	/**
	 * @return expanded textual representation of the rule
	 */
	public String getExpandedRuleString() {
		return expandedRuleString;
	}
	
	
	/**
	 * @param expandedRuleString expanded textual representation of the rule
	 */
	public void setExpandedRuleString(String expandedRuleString) {
		this.expandedRuleString = expandedRuleString;
	}
	
	/**
	 * @return offsets of the rule
	 */
	public ArrayList<Integer> getOffsets() {
		return arrOffsets;
	}
	
	public double getRuleIntervalsSD() {
		return ruleIntervalsSD;
	}

	public void setRuleIntervalsSD(double ruleIntervalsSD) {
		this.ruleIntervalsSD = ruleIntervalsSD;
	}

	public double getRuleAveragePeriod() {
		return ruleAveragePeriod;
	}

	public void setRuleAveragePeriod(double ruleAveragePeriod) {
		this.ruleAveragePeriod = ruleAveragePeriod;
	}

	public double getRuleAverageMotifLength() {
		return ruleAverageMotifLength;
	}

	public void setRuleAverageMotifLength(double ruleAverageMotifLength) {
		this.ruleAverageMotifLength = ruleAverageMotifLength;
	}
}
